<!-- Generated automatically from an XML file of the same name.
     Copyright: Stephen J. Sangwine and Nicolas Le Bihan, 2008-2011.
--><html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>adjoint :: Functions (Quaternion Toolbox Function Reference)
</title><link rel="stylesheet" href="qtfmstyle.css" type="text/css"></head><body><h1>Quaternion Function Reference</h1><h2>adjoint</h2>
<p>Adjoint of a quaternion matrix</p>
<h2>Syntax</h2><p><tt>C = adjoint(A, F, B)</tt></p>
<h2>Description</h2>
<p>
<tt>adjoint(A)</tt> or
<tt>adjoint(A, 'complex')</tt> returns a complex adjoint matrix.
<tt>adjoint(A, 'real')</tt>    returns a real    adjoint matrix.
<tt>adjoint(A, 'quaternion')</tt> returns a quaternion adjoint matrix
(only valid for the case where <tt>A</tt> is a complex quaternion
or biquaternion matrix).
The default is a complex adjoint.
</p>
<p>
    The third parameter (which may appear in the second position if the
    second is omitted), controls the layout of the adjoint, specifically
    whether the adjoint is organised in blocks by components (scalar, x, y, z)
    or with each quaternion represented as an adjoint block.
</p>
<p>
    <tt>adjoint(A, 'block')</tt> returns a complex matrix with each quaternion
    represented by a 2-by-2 block.
    <tt>adjoint(A, 'real', 'block')</tt> returns a real adjoint matrix in
    which each quaternion is represented by a real adjoint block, and similarly
    for other cases.
</p>
<p>There is no opposite for 'block'. 'block' is not supported with the
option 'quaternion'.
</p>
<p>
The adjoint of a quaternion matrix is a matrix which is in some
senses equivalent to the original quaternion or biquaternion matrix.
For example, it shares the same singular values
(although they may occur in duplicated pairs). This
means that the adjoint can be used to verify the results of quaternion
matrix algorithms. The adjoint representation is redundant - it utilises
twice the storage of the quaternion matrix, and after processing, it may
deviate from an accurate adjoint representation (for example the pairs of
singular values may no longer be closely matched). By extension, the
function can also compute a real adjoint matrix which is also an alternative
representation of the quaternion matrix, but with real elements rather than
complex.
The third possibility (a quaternion adjoint) applies only in the case of
complex quaternion (biquaternion) matrices. It yields a quaternion matrix
which has equivalent properties (such as singular values or eigenvalues).
</p>
<p>
The definition of the adjoint matrix is not unique (several permutations
of the layout are possible).
</p>
<p>
<b>N.B.</b> The layout of the matrix returned
<b>in the real case</b> was
changed after the release of QTFM Version 1.6. See the code for details.
</p>

<h2>Examples</h2>
<pre>
&gt;&gt; q = [quaternion(1,2,3,4), quaternion(5,6,7,8);...
        quaternion(9,10,11,12), quaternion(13,14,15,16)];
&gt;&gt; show(q)
 
q.S =
 
     1     5
     9    13

q.X =
 
     2     6
    10    14

q.Y =
 
     3     7
    11    15

q.Z =
 
     4     8
    12    16

&gt;&gt; adjoint(q)

ans =

   1.0000 + 2.0000i   5.0000 + 6.0000i   3.0000 + 4.0000i   7.0000 + 8.0000i
   9.0000 +10.0000i  13.0000 +14.0000i  11.0000 +12.0000i  15.0000 +16.0000i
  -3.0000 + 4.0000i  -7.0000 + 8.0000i   1.0000 - 2.0000i   5.0000 - 6.0000i
 -11.0000 +12.0000i -15.0000 +16.0000i   9.0000 -10.0000i  13.0000 -14.0000i

&gt;&gt; adjoint(q, 'block')

ans =

   1.0000 + 2.0000i   3.0000 + 4.0000i   5.0000 + 6.0000i   7.0000 + 8.0000i
  -3.0000 + 4.0000i   1.0000 - 2.0000i  -7.0000 + 8.0000i   5.0000 - 6.0000i
   9.0000 +10.0000i  11.0000 +12.0000i  13.0000 +14.0000i  15.0000 +16.0000i
 -11.0000 +12.0000i   9.0000 -10.0000i -15.0000 +16.0000i  13.0000 -14.0000i
</pre>

<h2>See Also</h2>QTFM function: <a href="unadjoint.html">unadjoint</a><br>
<h2>References</h2><ol><li>F. Z. Zhang, Quaternions and Matrices of Quaternions,
<i>Linear Algebra and its Applications</i>, <b>251</b>,
January 1997, 21-57.


DOI: <a href="http://dx.doi.org/10.1016/0024-3795%2895%2900543-9">10.1016/0024-3795%2895%2900543-9</a></li><li>B. P. Ickes, A New Method for Performing Digital Control System
Attitude Computations using Quaternions, <i>AIAA Journal</i>,
<b>8</b>(1), January 1970, pp13-17, American Institute of Aeronautics
and Astronautics.</li><li>Ward, J. P., Quaternions and Cayley numbers, Kluwer, 1997.</li><li>Todd A. Ell, On Systems of Linear Quaternion Functions, February
2007, arXiv:math/0702084v1, <a href="http://www.arxiv.org/abs/math/0702084">http://www.arxiv.org/abs/math/0702084</a>.
</li><li>Nicolas Le Bihan, Sebastian Miron and Jerome Mars,
MUSIC Algorithm for Vector-Sensors Array using Biquaternions,
<i>IEEE Transactions on Signal Processing</i>,
<b>55</b>(9), September 2007, 4523-4533.

DOI: <a href="http://dx.doi.org/10.1109/TSP.2007.896067">10.1109/TSP.2007.896067</a>.</li></ol>
<h4>&copy; 2008-2011 Stephen J. Sangwine and Nicolas Le Bihan</h4><p><a href="license.html">License terms.</a></p></body></html>